import axios, { InternalAxiosRequestConfig, AxiosReponse } from 'axios'
// import { useCounterStore } from '@/stores/counter'
// const store = useCounterStore()

axios.defaults.baseURL = '/admin/api';

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';

// 添加请求拦截器
axios.interceptors.request.use(function (config: InternalAxiosRequestConfig) {
  // 在发送请求之前做些什么
  let token = localStorage.getItem('adminToken') || ''
  config.headers['Authorization'] = token
  return config;
}, function (error: any) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response: AxiosReponse): AxiosReponse {
  // console.log(222, response);
  // 如果有权限被响应回来
  if (response.config.url === '/api/user/login' && response.data.error_code === 200 && response.data.data.auths.length > 0) {
    // 存储在sessionStorage
    // console.log(111);
    sessionStorage.setItem('auths', JSON.stringify(response.data.data.auths))
    // store.commit('setAuths', response.data.data.auths)
  }
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  return response.data;
}, function (error: any) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default axios